package com.example.appointment.service;

import com.example.appointment.dto.ClubActivityDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 社团活动服务接口
 */
public interface ClubActivityService {
    
    /**
     * 创建新活动
     */
    ClubActivityDTO createActivity(ClubActivityDTO activityDTO, Long userId);
    
    /**
     * 更新活动信息
     */
    ClubActivityDTO updateActivity(Long id, ClubActivityDTO activityDTO);
    
    /**
     * 根据ID获取活动详情
     */
    ClubActivityDTO getActivityById(Long id, Long currentUserId);
    
    /**
     * 分页获取活跃的活动列表
     */
    Page<ClubActivityDTO> getActiveActivities(Pageable pageable, Long currentUserId);
    
    /**
     * 获取所有活动（包括非活跃的，管理员使用）
     */
    Page<ClubActivityDTO> getAllActivities(Pageable pageable);
    
    /**
     * 搜索活动
     */
    Page<ClubActivityDTO> searchActivities(String keyword, Pageable pageable, Long currentUserId);
    
    /**
     * 获取用户创建的活动列表
     */
    List<ClubActivityDTO> getActivitiesByCreator(Long userId);
    
    /**
     * 取消活动
     */
    void cancelActivity(Long id);
    
    /**
     * 删除活动
     */
    void deleteActivity(Long id);
} 